//---------------------------------------------------------------------------
#pragma hdrstop
#include "classePilhaStl.h"
using namespace std;
//---------------------------------------------------------------------------
PilhaStl::PilhaStl()
{
	ptrPilhaStl = new stack<String>;
}
//---------------------------------------------------------------------------
PilhaStl::~PilhaStl()
{
	delete ptrPilhaStl;
	ptrPilhaStl = NULL;
}
//---------------------------------------------------------------------------
void PilhaStl::insere(String n)
{
	ptrPilhaStl->push(n);
}                   
//---------------------------------------------------------------------------
String PilhaStl::consulta()
{
	return ptrPilhaStl->top();
}
//---------------------------------------------------------------------------
void PilhaStl::remove()
{
	ptrPilhaStl->pop();
}
//---------------------------------------------------------------------------
void PilhaStl::limpar()
{
	while (ptrPilhaStl->size() > 0)
	{
		ptrPilhaStl->pop();
	}
}
//---------------------------------------------------------------------------
int PilhaStl::getTamanho()
{
	return ptrPilhaStl->size();
}
//---------------------------------------------------------------------------
void PilhaStl::listar(TStrings *itens)
{
	list<String> * lista = new list<String>;
	itens->Clear();

	while (ptrPilhaStl->size() > 0)
	{
		lista->push_back(ptrPilhaStl->top());
		ptrPilhaStl->pop();
	}

	if (lista->size() > 0)
	{
		list<String>::iterator iteratorAux;
		iteratorAux = lista->begin();
		itens->Clear();

		while (iteratorAux != lista->end())
		{
			itens->Append(*iteratorAux);
			iteratorAux++;
		}
		
		iteratorAux = lista->end();

		while (iteratorAux != lista->begin())
		{
			iteratorAux--;
			ptrPilhaStl->push(*iteratorAux);
		}
	}

	delete lista;
	lista = NULL;
}
//---------------------------------------------------------------------------

#pragma package(smart_init)
